# 选择排序
# 每趟排序记录最小的数，放到第一个位置，然后将每趟排序依次往后延续
# 和冒泡排序不同的是每趟排序只交换一次
# 默认第一个元素的下标为最小值 循环遍历后面的元素找到最小值的下标 最后进行数据的交换完成这一趟的排序
# 由于是双重N循环 所以时间复杂度是O(n^2) 平方阶

import random

list1 = []
for x in range(10):
    list1.append(random.randint(1, 100))
print(list1)


def select_sort(li):
    for y in range(len(li) - 1):
        min_index = y
        for x in range(y + 1, len(li)):
            if li[x] < li[min_index]:
                min_index = x
        li[y], li[min_index] = li[min_index], li[y]
        print(li)


select_sort(list1)
